rgerganov commited on
Commit
195fe29
·
1 Parent(s): 142d95e

rpc : set SO_REUSEADDR for the server socket (llama/7320)

Browse files
Files changed (1) hide show
  1. ggml-rpc.cpp +11 -2
ggml-rpc.cpp CHANGED
@@ -134,7 +134,13 @@ static bool set_no_delay(sockfd_t sockfd) {
134
  int flag = 1;
135
  // set TCP_NODELAY to disable Nagle's algorithm
136
  int ret = setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int));
137
- return ret >= 0;
 
 
 
 
 
 
138
  }
139
 
140
  static std::shared_ptr<socket_t> socket_connect(const char * host, int port) {
@@ -181,7 +187,10 @@ static std::shared_ptr<socket_t> create_server_socket(const char * host, int por
181
  if (sock == nullptr) {
182
  return nullptr;
183
  }
184
-
 
 
 
185
  struct sockaddr_in serv_addr;
186
  serv_addr.sin_family = AF_INET;
187
  serv_addr.sin_addr.s_addr = inet_addr(host);
 
134
  int flag = 1;
135
  // set TCP_NODELAY to disable Nagle's algorithm
136
  int ret = setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int));
137
+ return ret == 0;
138
+ }
139
+
140
+ static bool set_reuse_addr(sockfd_t sockfd) {
141
+ int flag = 1;
142
+ int ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&flag, sizeof(int));
143
+ return ret == 0;
144
  }
145
 
146
  static std::shared_ptr<socket_t> socket_connect(const char * host, int port) {
 
187
  if (sock == nullptr) {
188
  return nullptr;
189
  }
190
+ if (!set_reuse_addr(sockfd)) {
191
+ fprintf(stderr, "Failed to set SO_REUSEADDR\n");
192
+ return nullptr;
193
+ }
194
  struct sockaddr_in serv_addr;
195
  serv_addr.sin_family = AF_INET;
196
  serv_addr.sin_addr.s_addr = inet_addr(host);