home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / useful / comm / tcp / ftpdaemon / source / sockuser.c < prev    next >
C/C++ Source or Header  |  1993-12-26  |  1KB  |  92 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdarg.h>
  4.  
  5. #include <exec/types.h>
  6.  
  7. #include <proto/socket.h>
  8.  
  9. #include "ftp.h"
  10.  
  11. extern LONG server_socket;
  12.  
  13. static char buf[1024];
  14.  
  15. int recvchar(LONG s)
  16. {
  17.     char c;
  18.     
  19.     if(recv(s,&c,1,0)==-1) return EOF;
  20.     return (int)c;
  21. }
  22.  
  23. /* Buffered putchar to a socket */
  24. int usputc(LONG s,char c)
  25. {
  26.     static char *rn="\r\n";
  27.     
  28.     if(c=='\n') return send(s,rn,2,0);
  29.     return send(s,&c,1,0);
  30. }
  31.  
  32. /* The guts of printf, uses variable arg version of sprintf */
  33. int usvprintf(int s,char *fmt, va_list args)
  34. {
  35.     int len;
  36.     int i;
  37.     char *cp;
  38.  
  39.     vsprintf(buf,fmt,args);
  40.     len = strlen(buf);
  41.     cp = buf;
  42.     i = len;
  43.     
  44.     while(i-->0) usputc(s,*cp++);
  45.  
  46.     return len;
  47. }
  48.  
  49. /* Do printf on a user socket */
  50. int usprintf(LONG s,char *fmt,...)
  51. {
  52.     va_list args;
  53.     int len;
  54.  
  55.     va_start(args,fmt);
  56.     len = usvprintf(s,fmt,args);
  57.     va_end(args);
  58.     return len;
  59. }
  60.  
  61. /* Printf on standard output socket */
  62. int tprintf(char *fmt,...)
  63. {
  64.     va_list args;
  65.     int len;
  66.  
  67.     va_start(args,fmt);
  68.     len = usvprintf(server_socket,fmt,args);
  69.     va_end(args);
  70.     return len;
  71. }
  72.  
  73. /* Put a character to standard output socket */
  74. int tputc(char c)
  75. {
  76.     return usputc(server_socket,c);
  77. }
  78.  
  79. int usputs(LONG s,char *x)
  80. {
  81.     while(*x != '\0')
  82.         if(usputc(s,*x++) == EOF)
  83.             return EOF;
  84.     return 0;
  85. }
  86.  
  87. /* Put a string to standard output socket */
  88. int tputs(char *s)
  89. {
  90.     return usputs(server_socket,s);
  91. }
  92.