My suggestion was for a union type, yes. connect() still needs to call it internally with the numeric argument (to prevent a double lookup). It should also have a new name, something like "target_hint".
If it wasn't for compatibility, I'd prefer removing open_socket() completely.