Compare commits
	
		
			7 Commits
		
	
	
		
			7ad8e4a781
			...
			56c2eb1671
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 56c2eb1671 | |||
| 2fef63a253 | |||
| dc39583cc6 | |||
| a912e1b6bf | |||
| fdcd67aae6 | |||
| 799280f074 | |||
| 202bf85f55 | 
| @ -1158,6 +1158,7 @@ done' | ||||
|     ) | ||||
| 
 | ||||
| def http_server(argv): | ||||
|     from .commands_typed import os as commands_os | ||||
|     assert isinstance(argv, list) and all([isinstance(o, str) for o in argv]) | ||||
|     parser = optparse.OptionParser() | ||||
|     parser.add_option( | ||||
| @ -1214,11 +1215,33 @@ def http_server(argv): | ||||
|     assert options.port >= 1 | ||||
| 
 | ||||
|     try: | ||||
|         if not options.docker and options.host == '0.0.0.0': | ||||
|             found : bool = False | ||||
|             for o in commands_os.interfaces_index(): | ||||
|                 if found: | ||||
|                     break | ||||
|                 for o2 in o.addr_info: | ||||
|                     if o2.family == 'inet' and o2.local != '127.0.0.1': | ||||
|                         options.host = o2.local | ||||
|                         logger.info(dict( | ||||
|                             host=options.host, | ||||
|                             msg='found', | ||||
|                         )) | ||||
|                         found = True | ||||
|                         break | ||||
| 
 | ||||
|         assert not socket.inet_aton(options.host) is None | ||||
|         subprocess.check_call([ | ||||
|             'ping', '-w', '1', | ||||
|             options.host | ||||
|         ]) | ||||
|         # subprocess.check_call([ | ||||
|         #     'ping', '-w', '1', | ||||
|         #     options.host | ||||
|         # ]) | ||||
|         assert options.host in sum([ | ||||
|             [ | ||||
|                 o2.local | ||||
|                 for o2 in o.addr_info | ||||
|             ] | ||||
|             for o in commands_os.interfaces_index() | ||||
|         ], []) | ||||
|     except Exception: | ||||
|         raise RuntimeError('invalid ip address %s' % options.host) | ||||
| 
 | ||||
|  | ||||
| @ -1,14 +1,17 @@ | ||||
| import shutil | ||||
| import glob | ||||
| import subprocess | ||||
| import pydantic | ||||
| import pathlib | ||||
| import ctypes | ||||
| import os | ||||
| import sys | ||||
| import logging | ||||
| import dataclasses | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| from typing import (overload, Optional, Literal,) | ||||
| from typing import (overload, Optional, Literal, Any, Annotated,) | ||||
| 
 | ||||
| from .cli_bootstrap import PyProject | ||||
| 
 | ||||
| @ -89,4 +92,31 @@ def runtime_libdirs_init( | ||||
| 
 | ||||
|                 ctypes.cdll.LoadLibrary(preload_found) | ||||
|     else: | ||||
|         raise NotImplementedError | ||||
|         raise NotImplementedError | ||||
| 
 | ||||
| class interfaces_index_t: | ||||
|     @dataclasses.dataclass | ||||
|     class Interface: | ||||
|         @dataclasses.dataclass | ||||
|         class AddrInfo: | ||||
|             family: str | ||||
|             local: str | ||||
| 
 | ||||
|         name: Annotated[ | ||||
|             str, | ||||
|             pydantic.Field( | ||||
|                 alias='ifname', | ||||
|             ) | ||||
|         ] | ||||
|         addr_info: list[AddrInfo] | ||||
| 
 | ||||
| def interfaces_index() -> list[interfaces_index_t.Interface]: | ||||
|     res = pydantic.RootModel[ | ||||
|         list[interfaces_index_t.Interface] | ||||
|     ].model_validate_json( | ||||
|         subprocess.check_output([ | ||||
|             'ip', '-j', 'addr', | ||||
|         ]).decode('utf-8') | ||||
|     ).root | ||||
| 
 | ||||
|     return res | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.1-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.1-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.2-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.2-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.3-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.3-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.4-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								releases/whl/online_fxreader_pr34-0.1.5.9+27.4-py3-none-any.whl
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user