mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 04:52:45 +00:00 
			
		
		
		
	Kernel: Stub out the SO_DEBUG SOL_SOCKET-level option
This commit is contained in:
		
							parent
							
								
									e521ffd156
								
							
						
					
					
						commit
						a0e2fedc20
					
				
					 3 changed files with 14 additions and 0 deletions
				
			
		|  | @ -101,6 +101,7 @@ enum { | |||
|     SO_PEERCRED, | ||||
|     SO_RCVBUF, | ||||
|     SO_SNDBUF, | ||||
|     SO_DEBUG, | ||||
|     SO_REUSEADDR, | ||||
|     SO_BINDTODEVICE, | ||||
|     SO_KEEPALIVE, | ||||
|  | @ -113,6 +114,7 @@ enum { | |||
| #define SO_TYPE SO_TYPE | ||||
| #define SO_ERROR SO_ERROR | ||||
| #define SO_PEERCRED SO_PEERCRED | ||||
| #define SO_DEBUG SO_DEBUG | ||||
| #define SO_REUSEADDR SO_REUSEADDR | ||||
| #define SO_BINDTODEVICE SO_BINDTODEVICE | ||||
| #define SO_KEEPALIVE SO_KEEPALIVE | ||||
|  |  | |||
|  | @ -103,6 +103,9 @@ ErrorOr<void> Socket::setsockopt(int level, int option, Userspace<const void*> u | |||
|         m_bound_interface = move(device); | ||||
|         return {}; | ||||
|     } | ||||
|     case SO_DEBUG: | ||||
|         // NOTE: This is supposed to toggle collection of debugging information on/off, we don't have any right now, so this is a no-op.
 | ||||
|         return {}; | ||||
|     case SO_KEEPALIVE: | ||||
|         // FIXME: Obviously, this is not a real keepalive.
 | ||||
|         return {}; | ||||
|  | @ -198,6 +201,13 @@ ErrorOr<void> Socket::getsockopt(OpenFileDescription&, int level, int option, Us | |||
|         TRY(copy_to_user(static_ptr_cast<int*>(value), &m_type)); | ||||
|         size = sizeof(int); | ||||
|         return copy_to_user(value_size, &size); | ||||
|     case SO_DEBUG: | ||||
|         // NOTE: This is supposed to toggle collection of debugging information on/off, we don't have any right now, so we just claim it's always off.
 | ||||
|         if (size < sizeof(int)) | ||||
|             return EINVAL; | ||||
|         TRY(memset_user(value.unsafe_userspace_ptr(), 0, sizeof(int))); | ||||
|         size = sizeof(int); | ||||
|         return copy_to_user(value_size, &size); | ||||
|     default: | ||||
|         dbgln("setsockopt({}) at SOL_SOCKET not implemented.", option); | ||||
|         return ENOPROTOOPT; | ||||
|  |  | |||
|  | @ -231,3 +231,5 @@ set(WSSCREEN_DEBUG ON) | |||
| # set(BOCHS_DEBUG_PORT) | ||||
| # False positive: IFF_DEBUG is an ioctl flag | ||||
| # set(IFF_DEBUG) | ||||
| # False positive: SO_DEBUG is a socket option | ||||
| # set(SO_DEBUG) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Idan Horowitz
						Idan Horowitz