2929import org .photonvision .common .dataflow .DataChangeService ;
3030import org .photonvision .common .dataflow .DataChangeSource ;
3131import org .photonvision .common .dataflow .events .DataChangeEvent ;
32+ import org .photonvision .common .dataflow .networktables .NetworkTablesManager ;
3233import org .photonvision .common .hardware .Platform ;
3334import org .photonvision .common .hardware .PlatformUtils ;
3435import org .photonvision .common .logging .LogGroup ;
@@ -121,7 +122,7 @@ public void initialize(boolean shouldManage) {
121122
122123 // always set hostname (unless it's blank)
123124 if (!config .hostname .isBlank ()) {
124- setHostname (config . hostname );
125+ setHostname (config );
125126 } else {
126127 logger .warn ("Got empty hostname?" );
127128 }
@@ -145,29 +146,33 @@ public void reinitialize() {
145146 true ));
146147 }
147148
148- private void setHostname (String hostname ) {
149+ private void setHostname (NetworkConfig config ) {
149150 try {
150151 var shell = new ShellExec (true , false );
151152 shell .executeBashCommand ("cat /etc/hostname | tr -d \" \\ t\\ n\\ r\" " );
152153 var oldHostname = shell .getOutput ().replace ("\n " , "" );
153154 logger .debug ("Old host name: \" " + oldHostname + "\" " );
154- logger .debug ("New host name: \" " + hostname + "\" " );
155+ logger .debug ("New host name: \" " + config . hostname + "\" " );
155156
156- if (!oldHostname .equals (hostname )) {
157+ if (!oldHostname .equals (config . hostname )) {
157158 var setHostnameRetCode =
158159 shell .executeBashCommand (
159- "echo $NEW_HOSTNAME > /etc/hostname" .replace ("$NEW_HOSTNAME" , hostname ));
160- setHostnameRetCode = shell .executeBashCommand ("hostnamectl set-hostname " + hostname );
160+ "echo $NEW_HOSTNAME > /etc/hostname" .replace ("$NEW_HOSTNAME" , config .hostname ));
161+ setHostnameRetCode =
162+ shell .executeBashCommand ("hostnamectl set-hostname " + config .hostname );
161163
162164 // Add to /etc/hosts
163165 var addHostRetCode =
164166 shell .executeBashCommand (
165167 String .format (
166168 "sed -i \" s/127.0.1.1.*%s/127.0.1.1\\ t%s/g\" /etc/hosts" ,
167- oldHostname , hostname ));
169+ oldHostname , config . hostname ));
168170
169171 shell .executeBashCommand ("systemctl restart avahi-daemon.service" );
170172
173+ // This resets the NetworkTables config to use the new hostname as the client ID
174+ NetworkTablesManager .getInstance ().setConfig (config );
175+
171176 var success = setHostnameRetCode == 0 && addHostRetCode == 0 ;
172177 if (!success ) {
173178 logger .error (
@@ -177,7 +182,7 @@ private void setHostname(String hostname) {
177182 + addHostRetCode
178183 + "!" );
179184 } else {
180- logger .info ("Set hostname to " + hostname );
185+ logger .info ("Set hostname to " + config . hostname );
181186 }
182187 }
183188 } catch (Exception e ) {
0 commit comments