| version 1.9, 2002/10/21 01:59:16 |
version 1.12, 2002/10/24 01:29:00 |
|
|
| /* $OpenXM: OpenXM/src/kan96xx/plugin/sm1Socket.c,v 1.8 2002/10/21 01:11:44 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/plugin/sm1Socket.c,v 1.11 2002/10/24 01:05:05 takayama Exp $ */ |
| /* msg0s.c */ |
/* msg0s.c */ |
| #include <stdio.h> |
#include <stdio.h> |
| #include <sys/types.h> |
#include <sys/types.h> |
| Line 574 struct object KsocketReadHTTP(struct object socketObj) |
|
| Line 574 struct object KsocketReadHTTP(struct object socketObj) |
|
| break; |
break; |
| } |
} |
| } |
} |
| fprintf(stderr,"Waiting in socketReadBlock (spin lock to wait an empty line). flagmax(0d,0a)=%d, contentLength=%d\n",flagmax,contentLength); |
fprintf(stderr,"Waiting in socketReadBlock (spin lock to wait an empty line). flagmax(0d,0a)=%d, content-length=%d, received content-length=%d\n",flagmax,contentLength,getReceivedContentLength(sss)); |
| if (strlen(s) == 0) {fprintf(stderr,"but I'm not receiving data. Expecting a bug.\n"); |
if (strlen(s) == 0) {fprintf(stderr,"but I'm not receiving data. Expecting a bug.\n"); |
| }else{ |
}else{ |
| /* for debugging. */ |
/* for debugging. */ |
| Line 641 struct object Kplugin_sm1Socket(char *key,struct objec |
|
| Line 641 struct object Kplugin_sm1Socket(char *key,struct objec |
|
| robj = KsocketRead(obj); |
robj = KsocketRead(obj); |
| }else if (strcmp(key,"readHTTP") == 0) { |
}else if (strcmp(key,"readHTTP") == 0) { |
| robj = KsocketReadHTTP(obj); |
robj = KsocketReadHTTP(obj); |
| |
}else if (strcmp(key,"gethostname") == 0) { |
| |
robj = KsocketGetHostName(); |
| }else if (strcmp(key,"write") == 0) { |
}else if (strcmp(key,"write") == 0) { |
| robj = KsocketWrite(obj); |
robj = KsocketWrite(obj); |
| }else if (strcmp(key,"read") == 0) { |
}else if (strcmp(key,"read") == 0) { |
| Line 660 struct object Kplugin_sm1Socket(char *key,struct objec |
|
| Line 662 struct object Kplugin_sm1Socket(char *key,struct objec |
|
| |
|
| static int getContentLength(char *s) { |
static int getContentLength(char *s) { |
| int n; |
int n; |
| int i; |
int i,j; |
| int len = -1; |
int len = -1; |
| char *s1 = "Content-length:"; |
char *s1 = "content-length:"; |
| char *s2 = "CONTENT-LENGTH:"; |
char s0[256]; |
| |
int m; |
| |
m = strlen(s1); |
| n = strlen(s); |
n = strlen(s); |
| for (i=0; i<n; i++) { |
for (i=0; i<n; i++) { |
| if ((strncmp(&(s[i]),s1,strlen(s1)) == 0) || |
strncpy(s0,&(s[i]),m+1); |
| (strncmp(&(s[i]),s2,strlen(s2)) == 0)) { |
for (j=0; j<m; j++) { |
| sscanf(&(s[i+strlen(s1)]),"%d",&len); |
if ((s0[j] >= 'A') && (s0[j] <= 'Z')) s0[j] = s0[j]+0x20; |
| break; |
} |
| } |
if (strncmp(s0,s1,strlen(s1)) == 0) { |
| |
sscanf(&(s[i+strlen(s1)]),"%d",&len); |
| |
break; |
| |
} |
| } |
} |
| return len; |
return len; |
| } |
} |
| Line 692 static int getReceivedContentLength(char *s) { |
|
| Line 699 static int getReceivedContentLength(char *s) { |
|
| } |
} |
| |
|
| |
|
| |
struct object KsocketGetHostName(void) { |
| |
char name[1024]; |
| |
char *s; |
| |
struct object rob = NullObject; |
| |
if (gethostname(name,1023) != 0) { |
| |
return rob; |
| |
} |
| |
s = (char *)GC_malloc(sizeof(char)*(strlen(name)+2)); |
| |
if (s == (char *)NULL) errorMsg1s("Out of Memory."); |
| |
strcpy(s,name); |
| |
return(KpoString(s)); |
| |
} |
| |
|
| |
|
| |
|