#include #include #include #include #include #include #include "bolixo.h" #include "bolixo.m" /* Connect to the bolixo server. Return the socket handle or -1 if any error. */ int bomisc_connect( const char *server, const char *port, const char *user, const char *passwd, const char *document, SSTRING &errmsg) { glocal SSTRING *errmsg = &errmsg; glocal int ret = cmdsock_connect (server,port,10,1); if (glocal.ret == -1){ errmsg.appendf (MSG_U(E_CANTCONNECT,"Ne peut connecter au serveur\n")); }else{ BOXMLENC enc; SSTRING tmp; tmp.setfromf ("%s %s %s %s\n",C_LOGIN,enc.enc(user) ,enc.enc(passwd) ,enc.enc(document)); write (glocal.ret,tmp.get(),tmp.getlen()); glocal bool ok = false; (glocal.ret,10); end = true; if (isdigit(line[0])){ int code = atoi(line); if (code == 200){ glocal.ok = true; }else if (code == 220){ end = false; }else{ glocal.errmsg->appendf (MSG_U(E_REJCON,"Connexion rejeté par le serveur\n%s\n") ,line); } }else{ } //fprintf (stderr,"bomisc_connect: end=%d %s\n",end,line); if (!glocal.ok){ close (glocal.ret); glocal.ret = -1; } } return glocal.ret; }