[BACK]Return to sm1Socket.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / plugin

Diff for /OpenXM/src/kan96xx/plugin/sm1Socket.c between version 1.1.1.1 and 1.3

version 1.1.1.1, 1999/10/08 02:12:05 version 1.3, 2001/05/04 01:06:30
Line 1 
Line 1 
   /* $OpenXM: OpenXM/src/kan96xx/plugin/sm1Socket.c,v 1.2 2000/01/16 07:55:48 takayama Exp $ */
 /* msg0s.c */  /* msg0s.c */
 #include <stdio.h>  #include <stdio.h>
 #include <sys/types.h>  #include <sys/types.h>
Line 57  struct object KsocketOpen(struct object obj) {
Line 58  struct object KsocketOpen(struct object obj) {
   me.sin_family = AF_INET;    me.sin_family = AF_INET;
   me.sin_port = htons(portNumber);    me.sin_port = htons(portNumber);
   bcopy(myhost->h_addr,    bcopy(myhost->h_addr,
         &me.sin_addr,myhost->h_length);          &me.sin_addr,myhost->h_length);
   
   if ((s_waiting = socket(AF_INET,SOCK_STREAM,0)) < 0) {    if ((s_waiting = socket(AF_INET,SOCK_STREAM,0)) < 0) {
     errorMsg1s("Socket allocation is failed.");      errorMsg1s("Socket allocation is failed.");
Line 81  struct object KsocketOpen(struct object obj) {
Line 82  struct object KsocketOpen(struct object obj) {
     errorMsg1s("Listen failed");      errorMsg1s("Listen failed");
   }    }
   /*    /*
    fprintf(stderr,"Done the initialization. port =%d\n",ntohs(me.sin_port));        fprintf(stderr,"Done the initialization. port =%d\n",ntohs(me.sin_port));
      fprintf(stderr,"socket id = %d",accept(s_waiting,NULL,NULL)); */        fprintf(stderr,"socket id = %d",accept(s_waiting,NULL,NULL)); */
   rob = newObjectArray(2);    rob = newObjectArray(2);
   putoa(rob,0,KpoInteger(s_waiting));    putoa(rob,0,KpoInteger(s_waiting));
   putoa(rob,1,KpoInteger(ntohs(me.sin_port)));    putoa(rob,1,KpoInteger(ntohs(me.sin_port)));
Line 131  struct object KsocketConnect(struct object obj) {
Line 132  struct object KsocketConnect(struct object obj) {
   server.sin_family = AF_INET;    server.sin_family = AF_INET;
   server.sin_port = htons(portNumber);    server.sin_port = htons(portNumber);
   bcopy(servhost->h_addr,    bcopy(servhost->h_addr,
         (char *)&server.sin_addr,servhost->h_length);          (char *)&server.sin_addr,servhost->h_length);
   
   if ((socketid = socket(AF_INET,SOCK_STREAM,0)) <0) {    if ((socketid = socket(AF_INET,SOCK_STREAM,0)) <0) {
     errorMsg1s("socket allocation is failed.\n");      errorMsg1s("socket allocation is failed.\n");
Line 236  struct object KsocketSelect(struct object obj) {
Line 237  struct object KsocketSelect(struct object obj) {
 }  }
   
 struct object KsocketSelectMulti(struct object obj)  struct object KsocketSelectMulti(struct object obj)
 /* [ [integer socketid1, integer socketid2, ...]       /* [ [integer socketid1, integer socketid2, ...]
      optional integer timeout default 0]       optional integer timeout default 0]
    [ result1, result2, ....]     [ result1, result2, ....]
 */  */
Line 349  struct object KsocketRead(struct object obj) {
Line 350  struct object KsocketRead(struct object obj) {
     if (datasize - totalsize > 0) {      if (datasize - totalsize > 0) {
       n = read(socketid,data+totalsize,datasize-totalsize);        n = read(socketid,data+totalsize,datasize-totalsize);
       if (n < 0) {        if (n < 0) {
         errorMsg1s("Read error.");          errorMsg1s("Read error.");
       }        }
       if (n < datasize-totalsize) {        if (n < datasize-totalsize) {
         totalsize += n;          totalsize += n;
         break;          break;
       }else{ totalsize += n; }        }else{ totalsize += n; }
       if (totalsize == 0) {        if (totalsize == 0) {
         errorMsg1s("Select returns 1, but there is no data to read.");          errorMsg1s("Select returns 1, but there is no data to read.");
       }        }
     }else { /* increase the datasize */      }else { /* increase the datasize */
       tmp = (char *)GC_malloc(sizeof(char)*2*datasize);        tmp = (char *)GC_malloc(sizeof(char)*2*datasize);

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>