Der Aufruf Set_Partner_IP_Address (CMSPIA) setzt den Wert für die Characteristic IP-ADDRESS der Partner-Anwendung der Conversation. Der Aufruf überschreibt den Wert, der beim Initialize_Conversation-Aufruf zugewiesen wurde. Er darf nach dem Aufruf Allocate nicht mehr aufgerufen werden.
Diese Funktion gehört zu den zusätzlichen Funktionen des Trägersystems UPIC; sie ist nicht Bestandteil der CPI-C-Schnittstelle.
UPIC-Local auf Unix-, Linux- und Windows-Systemen:
Der Aufruf Set_Partner_IP_Address() wird bei der Anbindung über UPIC-L nicht unterstützt.
UPIC-R mit openUTM-Cluster-Nutzung:
Der Aufruf Set_Partner_IP_Address wird nicht unterstützt, wenn ein openUTM-Cluster konfiguriert ist.
CMSPIA (conversation_ID, ip_address, ip_address_length, return_code)
Parameter
--> conversation_ID | Identifikation der Conversation |
--> ip_address | legt fest, dass statt der Characteristic hostname eine IP-Adresse verwendet wird. |
--> ip_address_length | legt die Länge von ip_address in Byte fest. Minimum:0, Maximum:64. |
<-- return_code | Ergebnis des Funktionsaufrufs |
Ergebnis ( return_code )
CM_OK
Aufruf ok
CM_CALL_NOT_SUPPORTED
Die Funktion wird nicht unterstützt.
Bei UPIC-L auf Unix-, Linux- und Windows-Systemen tritt dieser Returncode immer auf. Er zeigt dem Programm an, dass keine ip_address verwendet werden kann, da UPIC-L diese Information aufgrund des darunterliegenden Kommunikationssystems nicht benötigt.
Bei UPIC-R tritt der Returncode auf, wenn ein openUTM-Cluster konfiguriert ist. Er zeigt dem Programm an, dass die ip_address nicht geändert werden kann.
Bei UPIC-R für BS2000-Systemen tritt der Returncode auf, wenn die UPIC-Bibliothek auf BS2000 zusammen mit CMX eingesetzt wird. Das von UPIC-R verwendete Kommunikationssystem CMX bietet auf BS2000-Systemen keine Möglichkeit, an der Schnittstelle IP-Adressen zur Adressierung der Partner-Anwendung zu übergeben.
CM_PROGRAM_PARAMETER_CHECK
Der Wert der conversation_ID oder für ip_address_length ist ungültig.
CM_PROGRAM_STATE_CHECK
Die Conversation ist nicht im Zustand "Initialize".
CM_PRODUCT_SPECIFIC_ERROR
Die UPIC-Instanz konnte nicht gefunden werden.
Zustandsänderung
Der Aufruf ändert den Zustand der Conversation nicht.
Hinweis
ip_address wird für IPv4 in der üblichen Punktnotation angegeben:
xxx.xxx.xxx.xxx
Die einzelnen Oktette xxx sind auf 3 Stellen beschränkt. Der Inhalt der Oktette wird immer als Dezimalzahl interpretiert. Insbesondere bedeutet dies, dass Oktette, die links mit Nullen aufgefüllt sind, nicht als Oktalzahl interpretiert werden.
ip_address
wird für IPv6 in der üblichen Doppelpunktnotation angegeben:
x:x:x:x:x:x:x:x
x
ist eine Hexadezimalzahl zwischen 0 und FFFF. Die alternativen Schreibweisen für IPv6-Adressen sind erlaubt (vgl. RFC2373).Wenn in der IPv6 Adresse eine embedded IPv4 Adresse in Punktnotation angegeben ist, dann gilt für die Oktette der IPv4 Adresse das gleiche wie oben. Die Oktette werden immer als Oktalzahl interpretiert.
Wenn ip_adress und HOST_NAME gesetzt sind, wird der Wert von HOST_NAME ignoriert.
Verhalten im Fehlerfall
CM_PROGRAM_PARAMETER_CHECK
Programm ändern.
CM_PROGRAM_STATE_CHECK
Programm ändern.
CM_PRODUCT_SPECIFIC_ERROR
Das Betriebssystem kann nicht genügend Speicherplatz für interne Puffer bereitstellen. Überprüfen Sie Ihr Programm auf zu hohe Speicherplatzanforderung und starten Sie ggf. Ihr System neu.
CM_CALL_NOT_SUPPORTED
Muss kein Fehler sein: Das Programm kann sich diesen Returncode merken und auf weitere Aufrufe zum Setzen von Adressinformationen verzichten.
CM_Entry Set_Partner_IP_Address ( unsigned char CM_PTR conversation_ID, unsigned char CM_PTR ip_address, CM_INT32 CM_PTR ip_address_length, CM_RETURN_CODE CM_PTR return_code )