Advertisement
Jo-Milk

SPRX Send HTTP To CCAPI or WM

Jan 7th, 2018
751
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.64 KB | None | 0 0
  1. SPRX Send HTTP To CCAPI or WebMan
  2. static int connect_to_CAPPI(void)
  3. {
  4.  struct sockaddr_in sin;
  5.  int s;
  6.  
  7.  sin.sin_family = AF_INET;
  8.  sin.sin_addr.s_addr = 0x7F000001; //127.0.0.1 (localhost)
  9.  sin.sin_port = htons(6333);
  10.  s = socket(AF_INET, SOCK_STREAM, 0);
  11.  if (s < 0)
  12.  {
  13.   return -1;
  14.  }
  15.  
  16.  if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0)
  17.  {
  18.   return -1;
  19.  }
  20.  
  21.  return s;
  22. }
  23.  
  24.  
  25. static int connect_to_webman(void)
  26. {
  27.  struct sockaddr_in sin;
  28.  int s;
  29.  
  30.  sin.sin_family = AF_INET;
  31.  sin.sin_addr.s_addr = 0x7F000001; //127.0.0.1 (localhost)
  32.  sin.sin_port = htons(80);         //http port (80)
  33.  s = socket(AF_INET, SOCK_STREAM, 0);
  34.  if (s < 0)
  35.  {
  36.   return -1;
  37.  }
  38.  
  39.  if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0)
  40.  {
  41.   return -1;
  42.  }
  43.  
  44.  return s;
  45. }
  46.  
  47. static void sclose(int *socket_e)
  48. {
  49.  if (*socket_e != -1)
  50.  {
  51.   shutdown(*socket_e, SHUT_RDWR);
  52.   socketclose(*socket_e);
  53.   *socket_e = -1;
  54.  }
  55. }
  56.  
  57.  
  58. static void send_wm_request(const char *cmd)
  59. {
  60.  // send command
  61.  int conn_s = -1;
  62.  conn_s = connect_to_webman();
  63.  
  64.  struct timeval tv;
  65.  tv.tv_usec = 0;
  66.  tv.tv_sec = 3;
  67.  setsockopt(conn_s, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
  68.  setsockopt(conn_s, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
  69.  
  70.  if (conn_s >= 0)
  71.  {
  72.   char wm_cmd[1048];
  73.   int cmd_len = sprintf(wm_cmd, "GET %s HTTP/1.0\r\n", cmd);
  74.   send(conn_s, wm_cmd, cmd_len, 0);
  75.   sclose(&conn_s);
  76.  }
  77. }
  78.  
  79. static void send_CCAPI_request(const char *cmd)
  80. {
  81.  // send command
  82.  int conn_s = -1;
  83.  conn_s = connect_to_CAPPI();
  84.  
  85.  struct timeval tv;
  86.  tv.tv_usec = 0;
  87.  tv.tv_sec = 3;
  88.  setsockopt(conn_s, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
  89.  setsockopt(conn_s, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
  90.  
  91.  if (conn_s >= 0)
  92.  {
  93.   char wm_cmd[1048];
  94.   int cmd_len = sprintf(wm_cmd, "GET %s HTTP/1.0\r\n", cmd);
  95.   send(conn_s, wm_cmd, cmd_len, 0);
  96.   sclose(&conn_s);
  97.  }
  98. }
  99.  
  100. void fixSpaces(char** szReturn) {
  101.  char *str = *szReturn;
  102.  char _returnStr[512];// = (char*)Malloc(128);
  103.  
  104.  _returnStr[0] = '\0';
  105.  
  106.  int dwStrIndex = 0;
  107.  
  108.  for (int i = 0; i < strlen(str) + 1; i++) {
  109.   if (str[i] != 0x20) {
  110.    _returnStr[dwStrIndex] = str[i];
  111.    dwStrIndex++;
  112.   }
  113.   else
  114.   {
  115.    _returnStr[dwStrIndex] = '%';
  116.    _returnStr[dwStrIndex + 1] = '2';
  117.    _returnStr[dwStrIndex + 2] = '0';
  118.    dwStrIndex += 3;
  119.   }
  120.  
  121.  
  122.   _returnStr[dwStrIndex] = '\0';
  123.  }
  124.  
  125.  *szReturn = _returnStr;
  126. }
  127.  
  128. void DoNotify(char *szFormat,int id = 0) {
  129.  char _notify_buffer[512];
  130.  if(CCAPI == true)
  131.  {
  132.  snprintf(_notify_buffer, 512, "/ccapi/notify?id=%i&msg=%s",id,szFormat);
  133.  send_CCAPI_request(_notify_buffer);
  134.  }
  135.  else if(WebMan == true)
  136.  {
  137.  fixSpaces(&szFormat);
  138.  snprintf(_notify_buffer, 512, "/notify.ps3mapi?msg=%s", szFormat);
  139.  send_wm_request(_notify_buffer);
  140.  }
  141. }
  142.  
  143. void ShutDownPS3() {
  144.  char _notify_buffer[512];
  145.  if(CCAPI == true)
  146.  {
  147.  snprintf(_notify_buffer, 512, "/ccapi/shutdown?mode=1");
  148.  send_CCAPI_request(_notify_buffer);
  149.  }
  150.  else if(WebMan == true)
  151.  {
  152.  snprintf(_notify_buffer, 512, "/shutdown.ps3");
  153.  send_wm_request(_notify_buffer);
  154.  }
  155. }
  156. void RestartPS3() {
  157.  char _notify_buffer[512];
  158.  if(CCAPI == true)
  159.  {
  160.  snprintf(_notify_buffer, 512, "/ccapi/shutdown?mode=2");
  161.  send_CCAPI_request(_notify_buffer);
  162.  }
  163.  else if(WebMan == true)
  164.  {
  165.  snprintf(_notify_buffer, 512, "/restart.ps3");
  166.  send_wm_request(_notify_buffer);
  167.  }
  168. }
  169. void Buzzer(int snd = 1)
  170. {
  171.  char _notify_buffer[512];
  172.  if(CCAPI == true)
  173.  {
  174.  snprintf(_notify_buffer, 512, "/ccapi/ringbuzzer?type=%i",snd);
  175.  send_CCAPI_request(_notify_buffer);
  176.  }
  177.  else if(WebMan == true)
  178.  {
  179.  snprintf(_notify_buffer, 512, "/buzzer.ps3mapi?mode=%i",snd);
  180.  send_wm_request(_notify_buffer);
  181.  }
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement