int Notifier::HTTPPOST(const char* URL, const char* data) { STACKLOG; int res=0; SWBaseSocket::SWBaseError error; SWInetSocket mySocket; if (mySocket.connect(80, REPO_SERVER, &error)) { char query[2048]; int len = (int)strnlen(data, 16000); sprintf(query, "POST %s HTTP/1.0\r\n" \ "Host: %s\r\n" \ "Content-Type: application/octet-stream\r\n" \ "Content-Length: %d\r\n" "\r\n" \ "%s", \ URL, REPO_SERVER, len, data); Logger::log(LOG_DEBUG,"Query to Master server: %s", query); if (mySocket.sendmsg(query, &error)<0) { Logger::log(LOG_ERROR,"Notifier: could not send request (%s)", error.get_error().c_str()); res=-1; } int rlen=mySocket.recv(httpresp, 65536, &error); if (rlen>0 && rlen<65535) httpresp[rlen]=0; else { Logger::log(LOG_ERROR,"Notifier: could not get a valid response (%s)", error.get_error().c_str()); res=-1; } Logger::log(LOG_DEBUG,"Response from Master server:'%s'", httpresp); try { resp = HttpMsg(httpresp); } catch( std::runtime_error e) { Logger::log(LOG_ERROR, e.what() ); res = -1; } // disconnect mySocket.disconnect(); } else { Logger::log(LOG_ERROR,"Notifier: could not connect to the Master server (%s)", error.get_error().c_str()); res=-1; } return res; }
int UserAuth::HTTPGET(const char* URL, HttpMsg &resp) { STACKLOG; if(trustlevel<=1) { // If this happens, then you did something wrong in the server code Logger::log(LOG_ERROR, "userauth: tried to contact master server without permission. URL: %s", URL); return 0; } char httpresp[65536]; //!< http response from the master server int res=0; SWBaseSocket::SWBaseError error; SWInetSocket mySocket; if (mySocket.connect(80, REPO_SERVER, &error)) { char query[2048]; sprintf(query, "GET %s HTTP/1.1\r\nHost: %s\r\n\r\n", URL, REPO_SERVER); Logger::log(LOG_DEBUG,"Query to Master server: %s", query); if (mySocket.sendmsg(query, &error)<0) { Logger::log(LOG_ERROR,"Notifier: could not send request (%s)", error.get_error().c_str()); res=-1; } int rlen=mySocket.recv(httpresp, 65536, &error); if (rlen>0 && rlen<65535) httpresp[rlen]=0; else { Logger::log(LOG_ERROR,"Notifier: could not get a valid response (%s)", error.get_error().c_str()); res=-1; } Logger::log(LOG_DEBUG,"Response from Master server:'%s'", httpresp); try { resp = HttpMsg(httpresp); } catch( std::runtime_error e) { Logger::log(LOG_ERROR, e.what() ); res = -1; } // disconnect mySocket.disconnect(); } else { Logger::log(LOG_ERROR,"Notifier: could not connect to the Master server (%s)", error.get_error().c_str()); res=-1; } return res; }
int Notifier::HTTPGET(const char* URL) { STACKLOG; int res=0; SWBaseSocket::SWBaseError error; SWInetSocket mySocket; if (mySocket.connect(80, REPO_SERVER, &error)) { char query[2048]; sprintf(query, "GET %s HTTP/1.1\r\nHost: %s\r\n\r\n", URL, REPO_SERVER); Logger::log(LOG_DEBUG,"Query to Master server: %s", query); if (mySocket.sendmsg(query, &error)<0) { Logger::log(LOG_ERROR,"Notifier: could not send request (%s)", error.get_error().c_str()); res=-1; } int rlen=mySocket.recv(httpresp, 65536, &error); if (rlen>0 && rlen<65535) httpresp[rlen]=0; else { Logger::log(LOG_ERROR,"Notifier: could not get a valid response (%s)", error.get_error().c_str()); res=-1; } Logger::log(LOG_DEBUG,"Response from Master server:'%s'", httpresp); try { resp = HttpMsg(httpresp); } catch( std::runtime_error e) { Logger::log(LOG_ERROR, e.what() ); res = -1; } // disconnect mySocket.disconnect(); } else { Logger::log(LOG_ERROR,"Notifier: could not connect to the Master server (%s)", error.get_error().c_str()); res=-1; } return res; }